// mac 价格计算函数
// 组合模式 装饰器模式
class MackBook{
    cost(){
        return 9999;
    }
}

// 装饰
function Memory(mackbook){
    // cost 方法改变？
    // js面向对象 原型式
    let v=mackbook.cost();
    mackbook.cost =()=>{
        return v+2000;
    }   // hasOwnProperty getOwnProperty  getOwnSymbols
}

function Engraving(mackbook){
    let v=mackbook.cost();
    mackbook.cost =function(){
        return v+1000;
    }
     
}

function Insurance(mackbook){
    let v=mackbook.cost();
    mackbook.cost=function(){
        return v+666;
    }
}

let mb=new MackBook();
// 加内存
Memory(mb);
Engraving(mb);
Insurance(mb);
console.log(mb.cost());